<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>1.事件的基本使用</title>
    <!-- 引入Vue -->
    <script type="text/javascript" src="../js/vue.js"></script>
</head>
<body>
    <!-- 
        事件的基本使用：
            1.使用v-on:xxx 或 @xxx 绑定事件，其中xxx是事件名：
            2.事件的回调需要配置在methods对象中，最终会在vm上：
            3.methods中配置的函数，不要用箭头函数！否则this就不是vm了， 会变成window：
            4.methods中配置的函数，都是被Vue所管理的函数，this的指向是vm 或 组件实例对象：
            5.@click="demo" 和 @click="($event)" 效果一致，但后者可以传参：     vue自身会识别 $evnet  关键字  不论位置在哪
     -->
    <!-- 准备好一个容器 -->
    <div id="root">
        <h2>欢迎来到{{name}}学习</h2>
        <!-- <button v-on:click="showInfo">点我提示信息</button> -->
        <button @click="showInfo1">点我提示信息</button>
        <button @click="showInfo2($event, 66)">点我提示信息</button>
    </div>
</body>

<script type="text/javascript">
    Vue.config.productionTip = false;   // 阻止vue 在启动时生成生产提示

    let vm = new Vue({
        el: "#root",
        data: {
            name: "尚硅谷",
            // 方法可以定义在此处，但是极大得占用vue资源，会生产get函数和set函数
            // showInfo2(event, value) {
            //     console.log(event, value)
            // }
        },
        // methods里面的方法也可以写在data里面，但是不建议，会增加vue的负担（会生成get函数和set函数）
        methods: {
            showInfo1(event) {
                console.log(event.target)
                console.log(this, this === vm)
            },
            showInfo2(event, value) {
                console.log(event.target, value)
                console.log(this, this === vm)
            },
        }
    })
</script>
</html>